package com.ruoyi.product.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品快照对象 jy_store_product_back
 *
 * @author ruoyi
 * @date 2021-11-22
 */
public class StoreProductBack extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 门店id */
    @Excel(name = "门店id")
    private Long storeId;

    /** 门店名称 */
    @Excel(name = "门店名称")
    private String storeName;

    private String adCode;
    private String adName;
    /** 省名称 */
    @Excel(name = "省名称")
    private String provinceName;

    /** 省编码 */
    @Excel(name = "省编码")
    private String provinceCode;

    /** 市名称 */
    @Excel(name = "市名称")
    private String cityName;

    /** 市编码 */
    @Excel(name = "市编码")
    private String cityCode;

    /** 纬度 */
    @Excel(name = "纬度")
    private String latitude;

    /** 经度 */
    @Excel(name = "经度")
    private String longitude;

    /** geo码 */
    @Excel(name = "geo码")
    private String geoCode;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 商品id */
    @Excel(name = "商品id")
    private Long productId;

    /** 商品主图 */
    @Excel(name = "商品主图")
    private String productImage;

    /** 项目详情 */
    @Excel(name = "项目详情")
    private String itemDetail;

    /** 图文详情 */
    @Excel(name = "图文详情")
    private String infoDetail;

    /** 分类id */
    @Excel(name = "分类id")
    private Long classifyId;

    /** 商品价格 */
    @Excel(name = "商品价格")
    private BigDecimal price;

    /** 排序 */
    @Excel(name = "排序")
    private Long sort;

    /** 销量 */
    @Excel(name = "销量")
    private Long salesNum;

    /** 虚拟销量 */
    @Excel(name = "虚拟销量")
    private Long fictiNum;

    /** 是否上架 */
    @Excel(name = "是否上架")
    private String state;

    /** 是否热卖 */
    @Excel(name = "是否热卖")
    private String hotState;

    /** 是否固定有效期 */
    @Excel(name = "是否固定有效期")
    private String fixedTimeState;

    /** 可使用开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date useStartTime;

    /** 可使用结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date useEndTime;

    /** 不可用时间 */
    @Excel(name = "不可用时间")
    private String disabledDate;

    /** 有效期天数 */
    @Excel(name = "有效期天数")
    private Long validDay;

    /** 提前预约数字 */
    @Excel(name = "提前预约数字")
    private Long appoinNum;

    /** 提前预约单位天或小时 */
    @Excel(name = "提前预约单位天或小时")
    private String appoinUnit;

    /** 适用人数 */
    @Excel(name = "适用人数")
    private Long peopleNum;

    /** 适用人群 */
    @Excel(name = "适用人群")
    private String peopleRight;

    /** 规则提醒 */
    @Excel(name = "规则提醒")
    private String ruleReminder;

    /** 温馨提示 */
    @Excel(name = "温馨提示")
    private String reminder;

    /** 商家服务 */
    @Excel(name = "商家服务")
    private String service;

    private String newUserState;
    private BigDecimal storePrice;

    public BigDecimal getStorePrice() {
        return storePrice;
    }

    public void setStorePrice(BigDecimal storePrice) {
        this.storePrice = storePrice;
    }

    public String getNewUserState() {
        return newUserState;
    }

    public void setNewUserState(String newUserState) {
        this.newUserState = newUserState;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setStoreId(Long storeId)
    {
        this.storeId = storeId;
    }

    public Long getStoreId()
    {
        return storeId;
    }
    public void setStoreName(String storeName)
    {
        this.storeName = storeName;
    }

    public String getStoreName()
    {
        return storeName;
    }
    public void setProvinceName(String provinceName)
    {
        this.provinceName = provinceName;
    }

    public String getProvinceName()
    {
        return provinceName;
    }
    public void setProvinceCode(String provinceCode)
    {
        this.provinceCode = provinceCode;
    }

    public String getProvinceCode()
    {
        return provinceCode;
    }
    public void setCityName(String cityName)
    {
        this.cityName = cityName;
    }

    public String getCityName()
    {
        return cityName;
    }
    public void setCityCode(String cityCode)
    {
        this.cityCode = cityCode;
    }

    public String getCityCode()
    {
        return cityCode;
    }
    public void setLatitude(String latitude)
    {
        this.latitude = latitude;
    }

    public String getLatitude()
    {
        return latitude;
    }
    public void setLongitude(String longitude)
    {
        this.longitude = longitude;
    }

    public String getLongitude()
    {
        return longitude;
    }
    public void setGeoCode(String geoCode)
    {
        this.geoCode = geoCode;
    }

    public String getGeoCode()
    {
        return geoCode;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }
    public void setProductImage(String productImage)
    {
        this.productImage = productImage;
    }

    public String getProductImage()
    {
        return productImage;
    }
    public void setItemDetail(String itemDetail)
    {
        this.itemDetail = itemDetail;
    }

    public String getItemDetail()
    {
        return itemDetail;
    }
    public void setInfoDetail(String infoDetail)
    {
        this.infoDetail = infoDetail;
    }

    public String getInfoDetail()
    {
        return infoDetail;
    }
    public void setClassifyId(Long classifyId)
    {
        this.classifyId = classifyId;
    }

    public Long getClassifyId()
    {
        return classifyId;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setSort(Long sort)
    {
        this.sort = sort;
    }

    public Long getSort()
    {
        return sort;
    }
    public void setSalesNum(Long salesNum)
    {
        this.salesNum = salesNum;
    }

    public Long getSalesNum()
    {
        return salesNum;
    }
    public void setFictiNum(Long fictiNum)
    {
        this.fictiNum = fictiNum;
    }

    public Long getFictiNum()
    {
        return fictiNum;
    }
    public void setState(String state)
    {
        this.state = state;
    }

    public String getState()
    {
        return state;
    }
    public void setHotState(String hotState)
    {
        this.hotState = hotState;
    }

    public String getHotState()
    {
        return hotState;
    }
    public void setFixedTimeState(String fixedTimeState)
    {
        this.fixedTimeState = fixedTimeState;
    }

    public String getFixedTimeState()
    {
        return fixedTimeState;
    }
    public void setUseStartTime(Date useStartTime)
    {
        this.useStartTime = useStartTime;
    }

    public Date getUseStartTime()
    {
        return useStartTime;
    }
    public void setUseEndTime(Date useEndTime)
    {
        this.useEndTime = useEndTime;
    }

    public Date getUseEndTime()
    {
        return useEndTime;
    }
    public void setDisabledDate(String disabledDate)
    {
        this.disabledDate = disabledDate;
    }

    public String getDisabledDate()
    {
        return disabledDate;
    }
    public void setValidDay(Long validDay)
    {
        this.validDay = validDay;
    }

    public Long getValidDay()
    {
        return validDay;
    }
    public void setAppoinNum(Long appoinNum)
    {
        this.appoinNum = appoinNum;
    }

    public Long getAppoinNum()
    {
        return appoinNum;
    }
    public void setAppoinUnit(String appoinUnit)
    {
        this.appoinUnit = appoinUnit;
    }

    public String getAppoinUnit()
    {
        return appoinUnit;
    }
    public void setPeopleNum(Long peopleNum)
    {
        this.peopleNum = peopleNum;
    }

    public Long getPeopleNum()
    {
        return peopleNum;
    }
    public void setPeopleRight(String peopleRight)
    {
        this.peopleRight = peopleRight;
    }

    public String getPeopleRight()
    {
        return peopleRight;
    }
    public void setRuleReminder(String ruleReminder)
    {
        this.ruleReminder = ruleReminder;
    }

    public String getRuleReminder()
    {
        return ruleReminder;
    }
    public void setReminder(String reminder)
    {
        this.reminder = reminder;
    }

    public String getReminder()
    {
        return reminder;
    }
    public void setService(String service)
    {
        this.service = service;
    }

    public String getService()
    {
        return service;
    }

    public String getAdCode() {
        return adCode;
    }

    public void setAdCode(String adCode) {
        this.adCode = adCode;
    }

    public String getAdName() {
        return adName;
    }

    public void setAdName(String adName) {
        this.adName = adName;
    }

    public StoreProductBack(){

    }
    public StoreProductBack (StoreProduct product,String infoDetail){
        this.storeId = product.getStoreId();
        this.storeName = product.getStoreName();
        this.adCode = product.getAdCode();
        this.adName = product.getAdName();
        this.provinceName = product.getProvinceName();
        this.provinceCode = product.getProvinceCode();
        this.cityName = product.getCityName();
        this.cityCode = product.getCityCode();
        this.latitude = product.getLatitude();
        this.longitude = product.getLongitude();
        this.geoCode = product.getGeoCode();
        this.productId = product.getId();
        this.productName = product.getProductName();
        this.productImage = product.getProductImage();
        this.itemDetail = product.getItemDetail();
        this.infoDetail = infoDetail;
        this.classifyId = product.getClassifyId();
        this.price = product.getPrice();
//        this.storePrice
        this.sort = product.getSort();
        this.salesNum = product.getSalesNum();
        this.fictiNum = product.getFictiNum();
        this.state = product.getState();
        this.hotState = product.getHotState();
        this.fixedTimeState = product.getFixedTimeState();
        this.useStartTime = product.getUseStartTime();
        this.useEndTime = product.getUseEndTime();
        this.disabledDate = product.getDisabledDate();
        this.validDay = product.getValidDay();
        this.appoinNum = product.getAppoinNum();
        this.appoinUnit = product.getAppoinUnit();
        this.peopleNum = product.getPeopleNum();
        this.peopleRight = product.getPeopleRight();
        this.ruleReminder = product.getRuleReminder();
        this.reminder = product.getReminder();
        this.service = product.getService();
        this.newUserState = product.getNewUserState();
        this.storePrice = product.getStorePrice();

    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("storeId", getStoreId())
            .append("storeName", getStoreName())
            .append("provinceName", getProvinceName())
            .append("provinceCode", getProvinceCode())
            .append("cityName", getCityName())
            .append("cityCode", getCityCode())
            .append("latitude", getLatitude())
            .append("longitude", getLongitude())
            .append("geoCode", getGeoCode())
            .append("productName", getProductName())
            .append("productId", getProductId())
            .append("productImage", getProductImage())
            .append("itemDetail", getItemDetail())
            .append("infoDetail", getInfoDetail())
            .append("classifyId", getClassifyId())
            .append("price", getPrice())
            .append("sort", getSort())
            .append("salesNum", getSalesNum())
            .append("fictiNum", getFictiNum())
            .append("state", getState())
            .append("hotState", getHotState())
            .append("fixedTimeState", getFixedTimeState())
            .append("useStartTime", getUseStartTime())
            .append("useEndTime", getUseEndTime())
            .append("disabledDate", getDisabledDate())
            .append("validDay", getValidDay())
            .append("appoinNum", getAppoinNum())
            .append("appoinUnit", getAppoinUnit())
            .append("peopleNum", getPeopleNum())
            .append("peopleRight", getPeopleRight())
            .append("ruleReminder", getRuleReminder())
            .append("reminder", getReminder())
            .append("service", getService())
            .append("delState", getDelState())
            .append("delUser", getDelUser())
            .append("delType", getDelType())
            .append("delTime", getDelTime())
            .append("createBy", getCreateBy())
            .append("createType", getCreateType())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateType", getUpdateType())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
